查看原文
其他

NetCDF(nc)数据读取与格式转换

走天涯徐小洋 走天涯徐小洋地理数据科学 2022-05-17

NetCDF(nc)数据读取与格式转换

NetCDF(network Common Data Form)网络通用数据格式是由美国大学大气研究协会(University Corporation for Atmospheric Research,UCAR)的 Unidata 项目科学家针对科学数据的特点开发的,是一种面向数组型并适于网络共享的数据的描述和编码标准。目前,NetCDF广泛应用于大气科学、水文、海洋学、环境模拟、地球物理等诸多领域。用户可以借助多种方式方便地管理和操作 NetCDF 数据集。

在这里以CRU TS Version 4.04数据为例,介绍一下nc数据格式读取与转换TIFF等相关内容。

1 GIS里面读取nc数据

ArcGIS数据读取与转换

ArcGIS中可以使用Multidimension Tools-Make NetCDF Raster Layer将nc文件转化为一个栅格图层。

Make NetCDF Raster Layer

打开转换后的栅格图层属性,查看NetCDF选项卡,查看维度值,可以看到当前显示的数据时间。

查看nc栅格属性

在图层上右击,数据(Data),导出数据(Export Data),即可将数据导出为TIFF格式

数据导出TIFF

但是NetCDF数据往往有很多个时间,这样只能导出一个时间的数据。在ArcGIS中使用Modelbuilder可以将NetCDF数据转化为多波段的TIFF数据,使用的工具如下(在这里没有设置参数,按照你的目录调整参数即可):

关于Model Builder的使用请参阅文末相关文章阅读

nc转多波段TIFF

上面Model Builder导出的数据将所有的时间写入了一个TIF,同时时间信息丢失了,没有具体的显示,也不太方便。

QGIS查看nc数据

QGIS原生支持nc数据,直接将nc数据拖入QGIS即可打开。颜色可以从图层属性,符号化选项卡进行修改

QGIS符号化调整

波段1时间是36905,时间起始是1900-1-1,可以在EXCEL里面进行一下计算,查看可得波段1时间为2001年1月

EXCEL计算时间

在QGIS中也可以通过另存为的方式将nc转为TIFF文件。

2 R语言处理nc数据

这里最推荐的就是R语言啦,编程简单,效果好!

ncdf4包是最常用的读取nc文件的R包,这里就不多说了,我这次主要是想把CRU TS时间序列nc数据转为单幅的TIFF文件,这样就能够用下面文章2里面的代码进行计算处理了。

三句话,nc转tiff完成!

library(raster)
tmpbr <- brick("cru_ts4.04.2001.2010.tmp.dat.nc", varname="tmp")
writeRaster(tmpbr, filename = tmpbr@data@names, bylayer=T, format="GTiff")
转换后以时间命名的TIFF文件

剩下的就可以用下面文章2中的方法计算和可视化了!

相关文章与参考文献:

  1. 利用ArcGIS Model Builder提高地理处理效率
  2. 【数据分享】月度基础气候栅格数据转年度数据处理与成图代码
  3. https://pjbartlein.github.io/REarthSysSci/raster_intro.html
  4. 地理数据科学技术文章合集,欢迎大家点赞、在看、转发三连!


公众号文章附带练习数据、资料、代码请转发本文至朋友圈并写推荐语:“给大家推荐一个宝藏公众号” 集赞10个后截图发到公众号后台联系管理员获取


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存